Barcodes are, in general, optical representations of binary data encoded by means of positional or dimensional attributes. Such barcodes can be scanned by optical scanners that, together with interpretive software, allow the encoded binary data to be recovered.
A one-dimensional (“1-D”) or linear barcode consists of bars (i.e., black lines) and spaces (i.e., white spaces) of various widths and employs width encoding only. Such 1-D barcodes are scanned from side-to-side and information is relevant in one dimension only. A single-wide bar represents a binary one. A single-wide space represents a zero.
A two-dimensional (“2-D”) or matrix barcode consists of an arrangement of dark and light squares and uses both width and height encoding. In a 2-D matrix code, the matrix code consists of modules. A dark module is a binary one and a light module is a binary zero. 2-D barcodes are scanned both from side-to-side and top-to-bottom and information is relevant in two dimensions. An example of such a 2-D barcode is the well-known and widely-used QR code.
The applicant has appreciated that it is possible to provide an encoded cell that represents more than a single bit of information, thereby enabling the provision of encoded cells (e.g., a cell array) that represent greater quantities of information than prior art barcodes. Furthermore, the applicant has appreciated that it is possible to include, within a cell array, cells that identify an encoding scheme used to encode other cells in the cell array. Such identity can reduce an amount of time needed to decode a cell array. Furthermore still, the applicant has appreciated that a cell within a cell array can include redundant aspects for confirming accuracy of decoding the cell array. Furthermore still, the applicant has appreciated that encoded cells with different noise level tolerances can be defined to accommodate different means for outputting a cell or cell array and to accommodate different means of capturing a cell or cell array.
Example embodiments are described herein. In one respect, an example embodiment takes the form of a method comprising: receiving, by a computing device, a binary identifier comprising a plurality of bits, determining, by the computing device, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, generating, by the computing device, a cell array that includes the one or more encoded cells, and outputting, by the computing device, data for producing a graphical representation of the cell array
In another respect, an example embodiment takes the form of a machine comprising: a computing device, and a computer-readable medium storing program instructions, that when executed by the computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a binary identifier comprising a plurality of bits, determining, by the computing device, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, generating, by the computing device, a cell array that includes the one or more encoded cells, and outputting, by the computing device, data for producing a graphical representation of the cell array.
In another respect, an example embodiment takes the form of a non-transitory computer-readable medium storing program instructions, that when executed by a computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a binary identifier comprising a plurality of bits, determining, by the computing device, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, generating, by the computing device, a cell array that includes the one or more encoded cells, and outputting, by the computing device, data for producing a graphical representation of the cell array.
In another respect, an example embodiment takes the form of a method comprising: receiving, by a computing device, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, decoding, by the computing device, each encoded cell in the captured cell array in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell, recovering, by the computing device, the binary identifier by combining the recovered bits, and outputting, by the computing device, the recovered binary identifier.
In another respect, an example embodiment, takes the form of a machine comprising: a computing device, and a computer-readable medium storing program instructions, that when executed by the computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, decoding, by the computing device, each encoded cell in the captured cell array in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell, recovering, by the computing device, the binary identifier by combining the recovered bits, and outputting, by the computing device, the recovered binary identifier.
In another respect, an example embodiment takes the form of a non-transitory computer-readable medium storing program instructions, that when executed by a computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, decoding, by the computing device, each encoded cell in the captured cell array in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell, recovering, by the computing device, the binary identifier by combining the recovered bits, and outputting, by the computing device, the recovered binary identifier.
In another respect, an example embodiment takes the form of a method comprising: receiving, by a computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, and displaying, by a display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In another respect, an example embodiment takes the form of a machine comprising: a display, a computing device, and a computer-readable medium storing program instructions, that when executed by the computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, and displaying, by the display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In another respect, an example embodiment takes the form of a computer-readable medium storing program instructions, that when executed by a computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, and displaying, by a display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In another respect, an example embodiment takes the form of an article of manufacture comprising: a surface, and a cell array, readable by a computing device, on the surface, wherein the cell array includes one or more encoded cells that encode, in accordance with an encoding scheme, a binary identifier that represents information pertaining to the article of manufacture, wherein the binary identifier comprises a plurality of bits, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In embodiments of the disclosure comprising a non-transitory computer-readable medium or a program executable on a computer-readable medium, the computer-readable medium may store instructions on physical media such as a DVD, or a solid state drive, or a hard drive. Alternatively, in any of these embodiments, a transitory computer-readable medium may be used instead of the non-transitory computer-readable medium. For example, a program may be provided in the form of instructions provided over a connection such as a network connection which is linked to a network such as the Internet.
These as well as other aspects and advantages will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. The embodiments described herein are intended to be examples only and do not necessarily limit the scope of the invention as recited in the claims.